#!/usr/bin/env python
#
#   Copyright (C) 2006 by Patrick Stinson and Jonathan Saggau             
#   patrickkidd@gmail.com   saggau@gmail.com                              
#                                                                         
#   This program is free software; you can redistribute it and/or modify  
#   it under the terms of the GNU General Public License as published by  
#   the Free Software Foundation; either version 2 of the License, or     
#   (at your option) any later version.                                   
#                                                                         
#   This program is distributed in the hope that it will be useful,       
#   but WITHOUT ANY WARRANTY; without even the implied warranty of        
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         
#   GNU General Public License for more details.                          
#                                                                         
#   You should have received a copy of the GNU General Public License     
#   along with this program; if not, write to the                         
#   Free Software Foundation, Inc.,                                       
#   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.  
#

import unittest
from supyrconductor import synthdef

class SynthdefTest(unittest.TestCase):
    _name = 'testMeSynthDef'
    _body = """
    var tester;
    replace = REPLACE_THIS;
       });
    OUT_LINE;
    """
    def setUp(self):
        self.synthdef = synthdef.Synthdef(name=self._name, body=self._body)
        
    def test_replacements(self):
        self.assertEqual(self.synthdef.getString(args={'vol':1}, 
                                                 replacements={"REPLACE_THIS":
                                                               "asdf",
                                                               "OUT_LINE":
                                                               'jkl'}),
"""
(
SynthDef("testMeSynthDef", 
{ arg vol = 1;

    var tester;
    replace = asdf;
       });
    jkl;
    
});
)""")
                         
if __name__ == '__main__':
    unittest.main()


